1. Field of the Invention
The invention is related to the field of communication systems, and in particular, to a facsimile system that transfers facsimiles in packets that indicate individual packet length.
2. Statement of the Problem
Facsimile machines transfer documents over telephone lines and have become an important business tool. To send a facsimile, the sending facsimile machine scans the document into digital data and encodes the data to remove redundant data. The sending facsimile machine generates a modem call to the receiving facsimile machine and the two facsimile machines exchange tones and flags to set-up the transfer. The sending facsimile machine then converts the encoded digital data into an analog signal that it transfers over the telephone lines to the receiving facsimile machine. The receiving facsimile machine converts the analog signal back into the digital data and prints the document based on the digital data. One current standard for telephony facsimile transmission is International Telecommunication Union (ITU) Recommendation T.30.
Facsimile transmissions over local telephone lines are relatively inexpensive because local telephone calls are typically based on a flat rate fee. Transmission costs are essentially the same even if a large amount of facsimile transmissions are sent. Unfortunately, many facsimile transmissions require the use of long distance telephone lines that add additional expense, especially if international telephone lines are used.
One solution to this problem uses the Internet for a segment of the facsimile transmission. The sending facsimile machine transfers the facsimile transmission to an emitting gateway using a local telephone call. The emitting gateway receives the facsimile transmission in the same manner as a receiving facsimile machine. The emitting gateway then converts the facsimile transmission into Internet Protocol (IP) packets and transfers the IP packets over the Internet to a receiving gateway near the receiving facsimile machine. The receiving gateway converts the IP packets back into a facsimile transmission and transfers the facsimile transmission to the receiving facsimile machine using a local telephone call. The receiving gateway transfers the facsimile transmission in the same manner as a sending facsimile machine. One current standard for IP facsimile transmission is International Telecommunication Union (ITU) Recommendation T.38.
The Transmission Control Protocol (TCP) is often used for IP communications because TCP includes error control that IP does not. TCP can recover from lost, duplicated, or corrupted packets as follows. An application layer transfers a message block to the TCP layer. The TCP layer breaks the message block into segments with sequence numbers. The TCP layer transfers the segments in TCP packets to the IP layer. The IP layer encapsulates the TCP packets within IP packets and transfers the IP packets over the Internet to another IP layer. The receiving IP layer strips off the IP encapsulation and transfers the resulting TCP packets to a receiving TCP layer. The receiving TCP layer rebuilds the message block from the segments in the TCP packets. The receiving TCP layer returns an acknowledgment (ACK) to the sending TCP layer if it correctly received message block. The sending TCP layer re-transmits the message block if it is not properly acknowledged.
Because of the error control, TCP is useful for IP facsimile transmissions based on ITU T.38. An application layer based on ITU T.38 transfers application packets to the TCP layer. The TCP layer places the application packets into segments and transfers the resulting TCP packets. If an application packet is smaller than a segment, then there is room in the end of the segment to start the next application packet. Per TCP standards, the next application packet may be started in that segment and finished in the next segment.
The overlap of an application packet across segment boundaries may lose the application packet boundaries. The loss of application packet boundaries poses a serious problem to the receiving gateway because it cannot readily determine where packets begin and end. Even if the TCP layer is forced to send one application packet per TCP packet during normal transmission, the problem remains if there is a TCP re-transmit due to a lost or defective segment. This is because the TCP layer can re-transmit multiple application packets within the same segment despite the forcing rule on normal transmissions.